With the continuous development of embedded devices in recent years and the popularity of embedded systems in devices such as mobile phones, Personal Digital Assistants (PDAs), and mobile televisions, developments of applications in mobile devices are correspondingly increased. Due to reasons that the software development project gets larger or the software research and development is urgent and reasons that hardware devices of different embedded platforms are different from each other, a lot of people are required to cooperate to develop and design the software and seamless integrate software code written by different people.
With the popularity of video communication, it becomes more frequent to perform encoding and decoding of video data in a mobile device. In the process of encoding and decoding the video data, due to the complexity of the video encoding and decoding algorithm, it often needs to take much CPU. However, in view of the fact that many embedded system chips are integrated with hardware codecs, the video quality can be greatly improved if the advantages of the system chips can be successfully used to improve the software encoding and decoding performance.
Since hardware encoding and decoding interfaces provided by different manufacturers are different from each other, a software interface is used when the hardware codec on the system chip is called such that the hardware codec can be called by an application. At present, the software interface is generally implemented by using a source code integration method. However, in this method, different source code needs to be encoded for different hardware codecs, furthermore, since the performance of each platform is different, a new software needs to be published each time when the source code is integrated and maintained, which increases the amount of work and goes against the maintenance of the system.
As mentioned above, the encoding and decoding method of the present embedded device has the following shortcomings: first, great amount of work; in different devices, different software interfaces are needed, different source code needs to be maintained, and a recompilation is required at each publication of the software, which increases the amount of work; second, reliance on the hardware device; models of various hardware devices provided by different manufacturers are different from each other, thus, when the hardware codec is used, it often needs to detect the hardware device to allow encoding parameters to match with decoding parameters, which causes overreliance on the hardware device.